Human vision is nonlinear with respect to perceived brightness. This nonlinearity may be better understood with regard to the following example: suppose one has taken two digital photographs of the same object. In general, digital camera sensors are linear devices. Thus, if one of the photographs is taken with twice the exposure time, one would expect a display of that photograph to be perceived as twice as bright as the remaining image. But if those digital images are then displayed without gamma correction, the displayed images will not have this proportionality in perceived brightness because of the nonlinear behavior of human vision. Even though the raw pixels corresponding to each image faithfully captured the brightness according to the exposure time, the user will perceive the images as having improper contrast when displayed due to the nonlinear behavior of human vision. Thus, it is conventional to adjust raw pixels such as still photograph and video data using a gamma correction value. The resulting gamma correction converts raw pixels into exponentially scaled pixels that are gamma corrected. To perform the desired gamma correction, it is conventional to process the raw pixels with lookup tables, piece-wise linear approximations, digital signal processor (DSP) based math routines, or combinations of these approaches. But using large lookup tables requires a relatively large amount of electrical power, which is thus not energy-efficient, and may require a large amount of memory. Moreover, a specialized DSP is relatively costly.
Accordingly, there is a need in the art for improved gamma correction techniques that can be implemented efficiently and at low cost.